package com.tfjybj.itoo.exam.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tfjybj.itoo.exam.entity.EvaluationPaperEntity;
import com.tfjybj.itoo.exam.entity.EvaluationRecordEntity;
import com.tfjybj.itoo.exam.model.EvaluationPaperModel;
import com.tfjybj.itoo.exam.model.EvaluationRecordModel;
import com.tfjybj.itoo.exam.model.ExaminationModel;
import com.tfjybj.itoo.exam.model.QuestionNaireAllInfoModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * TeEvaluationPaperDao接口
 * teEvaluationPaper表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-12-18 18:19:48
 */
@Repository("teEvaluationPaperDao")
public interface EvaluationPaperDao extends BaseMapper<EvaluationPaperEntity> {

    /**
     *
     * 查询问卷调查
     * @return QuestionNaireAllInfoModel
     * @author 王雪芬
     * @since 2.0.0 2018-12-18 18:19:48
     */
    QuestionNaireAllInfoModel queryTeEvaluationPaper();


    /**
     * 查询已有答题记录的课程问卷结果集合
     * @author 杨晓慧
     * @since 2.0.0 2018年12月22日14:57:18
     * @return queryCourseEvaluationPaperList
     */
    List<EvaluationPaperModel> queryCourseEvaluationPaperList() ;


    /**
     * 无参查询所有可用的评教问卷
     * @param semester 学年学期数据
     * @return teEvaluationPaperModelList 问卷详情
     * @author 杨江涛
     * @since 2.0.0 2018-12-27 11:50:53
     */
    List<EvaluationPaperModel> findAllQuestionNaire(@Param("semester") String semester);

    /**
     * 无参查询所有可用的调查问卷
     * @param semester  学年学期数据
     * @return teEvaluationPaperModelList 问卷详情
     * @author 杨江涛
     * @since 2.0.0 2018-12-27 15:57:40
     */
    List<EvaluationPaperModel> findAllSurveyQuestionNaire(@Param("semester") String semester);
    /**
     * 更新调查问卷的状态
     * @param id 问卷id
     * @param  status 问卷状态
     * @return teEvaluationPaperModelList 问卷详情
     * @author 杨江涛
     * @since 2.0.0 2018-12-27 17:36:39
     */
    boolean updatePaperStatus(@Param("id") String id, @Param("status") String status);
    /**
     * 模糊查询所有可用的问卷
     * @param  name 问卷名称
     * @param  type 问卷类型
     * @param  semester 学年学期
     * @return teEvaluationPaperModelList 问卷详情
     * @author 杨江涛
     * @since 2.0.0 2019-1-25 10:31:58
     */
    List<EvaluationPaperModel> aboutFindAllQuestionNaire(@Param("name") String name, @Param("type") String type, @Param("semester") String semester);

    /**
         *
         * @param
         * @return
         * @author 魏恩君
         * @since 2.0.0 2019/3/19
         */

    List<ExaminationModel> questionnaire();

    /**
         * 查询问卷记录里是否有该学生答题记录
         * @param
         * @return
         * @author 魏恩君
         * @since 2.0.0 2019/3/20
         */

    List<EvaluationRecordModel> queryEvaluationRecord(@Param("courseId") String courseId, @Param("paperId") String paperId, @Param("studentId") String studentId, @Param("schoolYearId") String schoolYearId);

    /**
     * 根据条件查询配置问卷
     *
     * @param switchNumber 0/1
     * @return
     * @since 2019-3-27 10:56:14
     */
    List<EvaluationPaperModel> questionnaireEnquiryq(@Param("switchNumber") String switchNumber);

    List<EvaluationPaperModel> selectTemplateByStatus(Map<String, Object> param);

    Boolean insertPaperByBatch(@Param("paperRecords") List<EvaluationRecordEntity> evaluationRecordEntityList);
}